package codingforgreat.lchot150;

import java.util.ArrayList;
import java.util.HashMap;

public class Lc350 {
    public int[] intersect(int[] nums1, int[] nums2) {
        HashMap<Integer,Integer> map = new HashMap<>();
        for(int i = 0;i < nums1.length;i++){
            if(!map.containsKey(nums1[i])){
                map.put(nums1[i],1);
            }else{
                map.put(nums1[i],map.get(nums1[i]) + 1);
            }
        }
        ArrayList<Integer> res = new ArrayList<>();
        for(int i = 0;i < nums2.length;i++){
            if(!map.containsKey(nums2[i])){
                continue;
            }else{
                res.add(nums2[i]);
                map.put(nums2[i],map.get(nums2[i]) - 1);
                if(map.get(nums2[i]) == 0 ){
                    map.remove(nums2[i]);
                }
            }
        }
        int[] ans = new int[res.size()];
        for(int i = 0;i < res.size();i++){
            ans[i] = res.get(i);
        }
        return ans;
    }
}
